vlwkaos' digital garden

Dockerfile 예시 node, nginx

### deps
# 설치 환경
FROM node:16.14.0-alpine as deps

# 사용 경로
WORKDIR /app

# 의존성 설정 복사
COPY package*.json ./

# 의존성 설치
RUN npm install

### builder
# 빌드 단계
FROM node:16.14.0-alpine as builder
ARG PHASE
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . . 

# 빌드
RUN PHASE=${PHASE} npm run build

### runner
# nginx 가져오기
FROM nginx:1.20.1-alpine as runner
ARG PHASE

# nginx 설정 파일 가져오기
COPY nginx.${PHASE}.conf /etc/nginx/conf.d/default.conf

# 빌드 결과물 복사 
COPY --from=builder /app/build ./build

#'웹 서버 설정 디렉터리 및 파일'의 타 사용자 접근권한 제거
RUN chmod 700 /etc/nginx/conf.d
RUN chmod 600 /etc/nginx/nginx.conf
RUN chmod 600 /etc/nginx/conf.d/default.conf

Referred in

Dockerfile 예시 node, nginx